タイトルに半角スペースが含まれていると 同ページでのジャンプが遅くなる
行リンクを使用して同一ページ内でジャンプするときに発生しますyozba.icon ジャンプ先が画面に表示されている場合は問題ない
画面内外関わらず、一番上までスクロールしてからジャンプするようですtakker.icon
画面外にある場合は遅くなる
一番遅いと同一ページ内であるにも関わらず一度ページが読み込まれてからジャンプする
全角スペースでは発生しない
タイトルに半角スペースがない場合は素早く動作するので、それと同じ速度になるととても助かります。
このページのタイトルに半角スペースを入れておいたので↓でテストできると思います
半角スペースなし版
確かに違いますねyosider.icon
2行下へのリンクですが、一旦上までスクロールしてからジャンプします
原因がわかりました。以下の函数の条件Z.default.Page.title === iで挙動が変わっていましたtakker.icon
code:src/client/js/routes/page.js
function _showPage() {
// 略
if (Z.default.CurrentProject.name === t && Z.default.Page.title === i)
return void Z.default.LinePermalink.set(v, {
source: "URL"
});
// 中略A
fe ?
((0,W.restoreScrollPosition)(location.pathname),(0,$.enablePreventLineResizeScrollPushing)()) :
window.scrollTo(0, 0),
// 中略B
}
Z.default.Page.titleには現在のページタイトルが、iには大文字を小文字に直し、 を_に変換したページタイトルが入ります
https://gyazo.com/22f55b75ba5546ef7628d7fc7425f813
その中でwindow.scrollTo(0, 0)を呼び出している行があり、これのせいで一旦ページ先頭まで戻されてしまいます
(中略A内でも行ID先にスクロール(Z.default.LinePermalink.set(v, { source: "URL" });)してはいるのだが、window.scrollTo(0, 0)で一瞬で戻されてしまうため、一見スクロールしていないようにみえる)
https://gyazo.com/2992f6557a6239978ab22234d2c4926b
最終的にはsetTimeout(() => this.scroll(), 1e3)でスクロールされます
このスクロール処理しか見えないため、遅く感じる
コードの意味を殆ど把握していないのでなんとも言えないですが、すぐスクロールされるようにするなら、Z.default.Page.title === iをZ.default.Page.title === toTitleLc(i)に書き換えることで対処できると思いますtakker.icon
すごいyosider.icon*2wogikaze.iconyozba.icon
Z.default.Page.title === ...はどういう状況を想定した条件なんだろうyosider.icon
タイトルが変更されている場合?
ページ遷移&行へ移動の場合falseにするためだと思いますwogikaze.icon
その場合はページトップ=>スクロールでいい
そこだとtoTitleLcが使えない気がするのでZ.default.Page.title.replace(/ /g, "_").toLowerCase() === iでとりあえず動きますがもう少し奇麗なコードをかく手があるはずwogikaze.icon
元のコードはESModuleだろうし、そのコードでtoTitleLcをimportすればいいだけなのでそれほど問題ではないtakker.icon
修正してほしいwogikaze.icon
あれ?逆かtakker.icon
toTitleLc(Z.default.Page.title) === iだった
ここにジャンプ